﻿// 麻省理工学院许可证
//
// 版权所有 (c) 2023-2025 缄默 联系电话/18521355630 
//
// 特此免费授予获得本软件的任何人以处理本软件的权利，但须遵守以下条件：在所有副本或重要部分的软件中必须包括上述版权声明和本许可声明。
//
// 软件按“原样”提供，不提供任何形式的明示或暗示的保证，包括但不限于对适销性、适用性和非侵权的保证。
// 在任何情况下，作者或版权持有人均不对任何索赔、损害或其他责任负责，无论是因合同、侵权或其他方式引起的，与软件或其使用或其他交易有关。



namespace LvcChong
{
    public class LayerHelper
    {
        ModalPanelManager _modalPanel = new ModalPanelManager();
        Loading _loadingContext = new Loading();

        /// <summary>
        /// 显示遮罩层
        /// </summary>
        /// <param name="control">控件</param>
        /// <param name="context">遮罩要显示的控件</param>
        /// <param name="alpha">透明度</param>
        public void ShowOpaqueLayerControl(System.Windows.Forms.Control control, Control context, int alpha = 45)
        {
            try
            {
                control.UpdateUI(() =>
                {
                    if (_modalPanel.IsOpen) { _modalPanel.Hide(); }
                    _modalPanel.AlphaLevel = alpha;
                    _modalPanel.Show(control, context, true);
                });
            }
            catch { }
        }

        /// <summary>
        /// 显示遮罩层
        /// </summary>
        /// <param name="control">控件</param>
        /// <param name="alpha">透明度</param>
        /// <param name="isShowLoadingImage">是否显示图标</param>
        public void ShowOpaqueLayer(System.Windows.Forms.Control control, int alpha = 45, bool isShowLoadingImage = true)
        {
            // 清空容器
            try
            {
                control.UpdateUI(() =>
                {
                    if (_modalPanel.IsOpen) { _modalPanel.Hide(); }
                    _modalPanel.AlphaLevel = alpha;
                    _modalPanel.Show(control, _loadingContext, false);
                });
            }
            catch { }
        }

        /// <summary>
        /// 隐藏遮罩层
        /// </summary>
        public void HideOpaqueLayer()
        {
            try
            {
                _modalPanel.Hide();
            }
            catch (Exception)
            {
            }
        }
    }
}